package com.nf.util;

import java.util.List;

/**
 * 分页工具 -> 封装相关的分页信息
 * 
 * @author 小罗
 * 
 */
public class PagerUtil<T> {
	// 1)当前页(currentPage) -> cp=3
	// 用户指定
	private int currentPage;
	
	// 2)总页数(totalPageCount) -> 4
	// 整除：总记录数 / 每页显示记录数 30 / 5 = 6
	// 不整除 : 总记录数 / 每页显示记录数 + 1   29 / 5 = 5 + 1
	private int totalPageCount;
	
	// 3)每页显示记录数(pageCount) -> 8
	// 用户指定
	private int pageCount;
	
	// 4)总记录数(totalRecords) -> 30
	// select count(*) from users ;
	private int totalRecords;

	// 5)当前页显示的数据集合(data) -> SQL语句
	private List<T> data;

	
	public int getCurrentPage() {
		return currentPage;
	}

	public void setCurrentPage(int currentPage) {
		// System.out.println("....:"+currentPage);
		if (currentPage <= 1) {
			this.currentPage = 1;
		} else if (currentPage >= this.getTotalPageCount()) {
			this.currentPage = this.getTotalPageCount();
		} else {
			this.currentPage = currentPage;
		}
	}

	// 设置总页数
	// 整除：总记录数 / 每页显示记录数
	// 不整除 : 总记录数 / 每页显示记录数 + 1
	public int getTotalPageCount() {

		if (this.getTotalRecords() % this.getPageCount() == 0) {
			this.totalPageCount = this.getTotalRecords() / this.getPageCount();
		} else {
			this.totalPageCount = this.getTotalRecords() / this.getPageCount() + 1;
		}

		return this.totalPageCount;
	}

	// 注：总页数是不能让用户手动设置的 ，必须通过公式计算
	// public void setTotalPageCount(int totalPageCount) {
	//
	// }

	public int getPageCount() {
		return pageCount;
	}

	public void setPageCount(int pageCount) {

		if (pageCount <= 0) {
			this.pageCount = 5;
		} else {
			this.pageCount = pageCount;
		}

	}

	public int getTotalRecords() {
		return totalRecords;
	}

	public void setTotalRecords(int totalRecords) {
		this.totalRecords = totalRecords;
	}

	public List<T> getData() {
		return data;
	}

	public void setData(List<T> data) {
		this.data = data;
	}

}
